% 单通道等待模拟
% 货车夜间到达，白天卸货，每天只能卸货2车，若一天内到达数超过2车，那么就推迟到次日卸货
% 到达车数 0    1    2   3    4    5   ≥6 
% 概 率  0.23 0.30 0.30 0.1 0.05 0.02 0.00
% 到达车数不服从泊松分布，服务时间也不服 从指数分布(这是定长服务时间)
% a1 表示产生的随机数，a2 表示到达的车数，a3 表示需要卸货车数，a4 表示实际卸货车数，a5 表示推迟卸货车数
clear
rand('state',sum(100*clock));
n=50000;
m=2;
a1=rand(n,1);
a2=a1; %a2初始化
a2(find(a1<0.23))=0;
a2(find(0.23<=a1&a1<0.53))=1; 
a2(find(0.53<=a1&a1<0.83))=2; 
a2(find(0.83<=a1&a1<0.93),1)=3; 
a2(find(0.93<=a1&a1<0.98),1)=4; 
a2(find(a1>=0.98))=5; 
a3=zeros(n,1);
a4=zeros(n,1);
a5=zeros(n,1); %a2初始化 
a3(1)=a2(1);
if a3(1)<=m
    a4(1)=a3(1);a5(1)=0;
else
    a4(1)=m;a5(1)=a2(1)-m;
end
for i=2:n
    a3(i)=a2(i)+a5(i-1);
    if a3(i)<=m
        a4(i)=a3(i);a5(i)=0;
    else
        a4(i)=m;a5(i)=a3(i)-m;
    end
end
a=[a1,a2,a3,a4,a5];
sum(a)/n